Ext.ns('cn.hls.web.action.biz.car');
var carForm = cn.hls.web.action.biz.car.carForm;
 carForm = function() {
	var uploadPanel,win,handCarWin,handCarGrid,handCarStore,tbarOpr=[];
	var sm = new Ext.grid.CheckboxSelectionModel({
		singleSelect : false  //单选设置为false　表示允许多选
	});
   return { 
      init : function() {
    	this.initRender();
      },
      /**企业基本信息下拉框 store**/
      createCompanyStore:function(){
     	 return new Ext.data.Store({
     		 	autoLoad:true,//自动加载   
 				proxy : new Ext.data.HttpProxy({ url : cfg.cxt+'/company/loadCompany.action?type=1' }),
 				reader : new Ext.data.JsonReader({idProperty : 'id'},
 				["id","name"]),
 				listeners : { 
 					loadexception : bangni.storeLoadError
 				}
 			});
      },
      /**人员基本信息下拉框 store**/
      createMemberStore:function(type){
    	  return new Ext.data.Store({
     		 	autoLoad:true,//自动加载   
  				proxy : new Ext.data.HttpProxy({ url : cfg.cxt+'/member/loadMemberList.action' }),
  				reader : new Ext.data.JsonReader({idProperty : 'id'},
  				["id","name","contractPhone","driverLiceseNum","superCargoNum","photo"]),
  				baseParams:{'type':type,'company.id':companyId==''?undefined:companyId},
  				listeners : { 
  					loadexception : bangni.storeLoadError
  				}
  			});
      },
      /**打开挂车视图窗口**/
      openHandCarView:function(){
    	  if(!handCarGrid){
    		  handCarStore=carForm.createHandCarStore();
    		  handCarGrid=carForm.createHandCarGrid();//创建挂车列表
    		  handCarStore.on('beforeload', function() {
    			  this.baseParams = {
  						"licenseNum" : Ext.getCmp('txt_licenseNum').getValue(),
  						"color" : Ext.getCmp('txt_color').getValue(),
  						'car.licenseNum':Ext.getCmp('txt_car_licenseNum').getValue()
  					};  
    		  });
    		  //列表绑定双击事件
    		  handCarGrid.on('rowdblclick', function(g, r, e) {
    			  carForm.confirmChoose(g.getSelectionModel().getSelected());  
    		  });
    	  }
    	  if(!handCarWin){
    		  handCarWin=carForm.createHandCarWindow();//创建挂车窗口
    	  }
    	  carForm.queryResItem();
    	  handCarWin.show();
      },
      /**选中行的判断**/
      confirmChoose:function(row){
    	  Ext.Msg.confirm('请确认',
					'<span style="color:red"><b>提示：</b>确定选择车辆为['+row.data.licenseNum+']挂车?</span>',
					function(btn, text) {
						if (btn == 'yes') {
							$("#txt_licenseNum2").val(row.data.licenseNum);
							$("#carryCapacity").val(row.data.carryCapacity);
							handCarWin.hide();
						}
					});
      },
      /**创建挂车列表store**/
      createHandCarStore: function() {
			return new ExtStore({
				url : '/handCar/list.action',
				fields : [ "id",// 编号
				       	"licenseNum",//车牌号
				    	"color",//车牌颜色
				    	"carryCapacity",//载重量
				    	"totalMass",//车辆类型
				    	"wheelNum",//道路运输许可证
				    	"productTime",//出厂日期
				    	"car"//主车信息
				    	]
			});
      },
      /**创建挂车列表**/
	createHandCarGrid:function(){
    	  return new ExtGrid({
				store :handCarStore,
				title : '<div class="panelTitleCss">挂车基本信息列表</div>',
				sm : sm,
				columnLines : true,
				columns :carForm.createColumns(),
				tbar : carForm.createQueryTbar(),
				bbar : {
					id : 'page',
					xtype : 'pageinfobar',
					pageSize : 20,
					store : handCarStore,
					pageMethod : carForm.queryResItem
				}
			});
      },
      createColumns : function() {
			var cols = [
						new Ext.grid.RowNumberer(),
						sm,
						{
							sortable : true,dataIndex : 'licenseNum',width : 60,autoWidth :true,header : '车牌号',align : 'center'
						},{
							sortable : true,dataIndex : 'car',width : 60,autoWidth :true,header : '主车车牌',align : 'center',
							renderer : function(val) {
								if(val==null){
									return '';
								}else{
									return val.licenseNum;
								}
							}
						},{
							sortable : true,dataIndex : 'color',width : 60,autoWidth :true,header : '车身颜色',align : 'center'
						},{
							sortable : true,dataIndex : 'wheelNum',width : 60,autoWidth :true,header : '车轮数',align : 'center'
						},{
							sortable : true,dataIndex : "totalMass",header : '总质量',autoWidth : true,align : 'center',width : 75
							
						},{
							sortable : true,dataIndex : 'carryCapacity',width : 50,autoWidth :true,header : '载重(Kg)',align : 'center'
						},{
							sortable : true,dataIndex : 'productTime',width : 50,autoWidth :true,header : '出厂日期',align : 'center',
							renderer:function(val){
								if(val==null){
									return ''
								}else{
									return new Date(val).dateFormat('Y-m-d');
								}
							}
						}
					];
			return cols;
		},
		createQueryTbar : function() {
			tbarOpr.push('->');
			tbarOpr.push({
				xtype : "textfield",
				width : 90,
				id : 'txt_licenseNum',
				emptyText : '请输入挂车牌号',
				style : 'margin-left:10px;',
				enableKeyEvents : true,
				listeners : {
					specialkey : function(field, e) {
						if (e.getKey() == Ext.EventObject.ENTER) {
							carForm.queryResItem();
						}
					}
				}
			});
			tbarOpr.push({
				xtype : "textfield",
				width : 90,
				id : 'txt_car_licenseNum',
				emptyText : '请输入主车车牌号',
				style : 'margin-left:10px;',
				enableKeyEvents : true,
				listeners : {
					specialkey : function(field, e) {
						if (e.getKey() == Ext.EventObject.ENTER) {
							carForm.queryResItem();
						}
					}
				}
			});
			
			tbarOpr.push({
				xtype : "textfield",
				width : 90,
				id : 'txt_color',
				emptyText : '请输入车身颜色',
				style : 'margin-left:10px;',
				enableKeyEvents : true,
				listeners : {
					specialkey : function(field, e) {
						if (e.getKey() == Ext.EventObject.ENTER) {
							carForm.queryResItem();
						}
					}
				}
			});
			tbarOpr.push('-'); 
			tbarOpr.push({
				text : '查询',
				iconCls : 'mainContent',
				handler : function() {
					carForm.queryResItem();
				}
			});

			tbarOpr.push({
				text : '刷新',
				iconCls : 'arrow_refreshIcon',
				handler : function() {
					handCarStore.reload();
				}
			});
		return tbarOpr;
		},
		queryResItem : function(v) {
			var ptool = Ext.getCmp('page');
			if (!v) {
				v = ptool.pageSize;
			}
			handCarStore.load({
				params : {
					"start" : 0,
					"limit" : v
				}
			});

		},

      /**创建挂车窗口**/
      createHandCarWindow:function(url){
    	  return new ExtWin({
			    width : 800,
				height : 350,
				maximizable : true,
				layout:'fit',
				items:handCarGrid,
				buttons : [{
					text : '确定',
					id:"btnSave",
					iconCls : 'acceptIcon',
					handler : function() {
						var selectModel = handCarGrid.getSelectionModel();
						if(selectModel.getCount() == 0){
							Ext.Mytip.msg('提示', '请先选择挂车信息!');
							return;
						}
						
						if(selectModel.getCount() > 1){
							Ext.Mytip.msg('提示', '请选择一条挂车信息!');
							return;
						}
						carForm.confirmChoose(selectModel.getSelected());
					}
				},{
					text : '关闭',
					iconCls : 'deleteIcon',
					handler : function() {
						handCarWin.hide();
					}
				}]
			});
      },
      initRender: function(){
    	  var forcedInsuranceTime=Ext.get('hid_forcedInsuranceTime').dom.value;//强制保险有效日期
      	  //强制保险有效日期
          new Ext.form.DateField({
 				id : 'dtforcedInsuranceTime',
 				width : 170,
 				editable : true,
 				format : "Y-m-d",
 				name : 'forcedInsuranceTime',
 				renderTo : 'forcedInsuranceTime',
 				allowBlank : true,
 				value:Ext.isEmpty(forcedInsuranceTime)?null:new Date(forcedInsuranceTime.substr(0,10))
 			});
          var thirdInsuranceTime=Ext.get('hid_thirdInsuranceTime').dom.value;//第三责任保险有效日期
          //第三责任险有效日期
          new Ext.form.DateField({
				id : 'dtthirdInsuranceTime',
				width : 170,
				editable : true,
				format : "Y-m-d",
				name : 'thirdInsuranceTime',
				renderTo : 'thirdInsuranceTime',
				allowBlank : true,
				value:Ext.isEmpty(thirdInsuranceTime)?null:new Date(thirdInsuranceTime.substr(0,10))
			});
          var carrierInsuranceTime=Ext.get('hid_carrierInsuranceTime').dom.value;//承运人责任有效期
          //承运人责任有效期
          new Ext.form.DateField({
				id : 'dtcarrierInsuranceTime',
				width : 170,
				editable : true,
				format : "Y-m-d",
				name : 'carrierInsuranceTime',
				renderTo : 'carrierInsuranceTime',
				allowBlank : true,
				value:Ext.isEmpty(carrierInsuranceTime)?null:new Date(carrierInsuranceTime.substr(0,10))
			});
          var driveExamTime=Ext.get('hid_driveExamTime').dom.value;//行驶证年审有效日期
          var driveValidityTime=Ext.get('hid_driveValidityTime').dom.value;//行驶证有效期
          //行驶证年审有效日期
          new Ext.form.DateField({
				id : 'dtdriveExamTime',
				width : 130,
				editable : true,
				format : "Y-m-d",
				name : 'driveExamTime',
				renderTo : 'driveExamTime',
				allowBlank : true,
				value:Ext.isEmpty(driveExamTime)?null:new Date(driveExamTime.substr(0,10))
			});
          //行驶证有效期日期组件
          new Ext.form.DateField({
				id : 'dtdriveValidityTime',
				width : 130,
				editable : true,
				format : "Y-m-d",
				name : 'driveValidityTime',
				renderTo : 'sp_driveValidityTime',
				allowBlank : true,
				value:Ext.isEmpty(driveValidityTime)?null:new Date(driveValidityTime.substr(0,10))
			});
          var transLicenseExamTime=Ext.get('hid_transLicenseExamTime').dom.value;//道路运输证年审有效期
          var transLicenseValidityTime=Ext.get('hid_transLicenseValidityTime').dom.value;//道路运输证件有效期
        //道路运输证年审有效期
          new Ext.form.DateField({
				id : 'dttransLicenseExamTime',
				width : 130,
				editable : true,
				format : "Y-m-d",
				name : 'transLicenseExamTime',
				renderTo : 'transLicenseExamTime',
				allowBlank : true,
				value:Ext.isEmpty(transLicenseExamTime)?null:new Date(transLicenseExamTime.substr(0,10))
			});
          
          new Ext.form.DateField({
				id : 'dttransLicenseValidityTime',
				width : 130,
				editable : true,
				format : "Y-m-d",
				name : 'transLicenseValidityTime',
				renderTo : 'sp_transLicenseValidityTime',
				allowBlank : true,
				value:Ext.isEmpty(transLicenseValidityTime)?null:new Date(transLicenseValidityTime.substr(0,10))
			});
          var tankExamTime=Ext.get('hid_tankExamTime').dom.value;//罐体年检有效日期
          //罐体年检有效日期
          new Ext.form.DateField({
				id : 'dttankExamTime',
				width : 130,
				editable : true,
				format : "Y-m-d",
				name : 'tankExamTime',
				renderTo : 'tankExamTime',
				allowBlank : true,
				value:Ext.isEmpty(tankExamTime)?null:new Date(tankExamTime.substr(0,10))
			});
          var techicalGradeTime=Ext.get('hid_techicalGradeTime').dom.value;//技术选择评定有效日期
          //技术等级评定有效期
          new Ext.form.DateField({
				id : 'dttechicalGradeTime',
				width : 170,
				editable : true,
				format : "Y-m-d",
				name : 'techicalGradeTime',
				renderTo : 'techicalGradeTime',
				allowBlank : true,
				value:Ext.isEmpty(techicalGradeTime)?null:new Date(techicalGradeTime.substr(0,10))
			});
          var secondMaintenanceTime=Ext.get('hid_secondMaintenanceTime').dom.value;//二级维护有效日期
          //二级维护有效期
          new Ext.form.DateField({
				id : 'dtsecondMaintenanceTime',
				width : 170,
				editable : true,
				format : "Y-m-d",
				name : 'secondMaintenanceTime',
				renderTo : 'secondMaintenanceTime',
				allowBlank : true,
				value:Ext.isEmpty(secondMaintenanceTime)?null:new Date(secondMaintenanceTime.substr(0,10))
			});
    	  new Ext.form.ComboBox({ //默认过滤参数名为query     
              store: carForm.createCompanyStore(),    
              hiddenName:'company.name',
              id:'comb_company',
              width : 200,
              mode : 'local', //设置为local,则加载的本地数据     
              typeAheadDelay:250,//默认延时查询250     
              triggerAction : 'all', //每次下拉均显示全部选项       
              selectOnFocus:true,
              forceSelection: true,// 用户必须点击选择不能随意输入  
              typeAhead: true,// 自动提示并补充列出相似的选项  
              valueField : 'id', //下拉框显示信息对应的值     
              displayField : 'name', //下拉框显示信息     
              loadingText : '正在加载信息',      
              selectOnFocus : true, //用户不能自己输入,只能选择列表中有的记录     
              minChars:2,  //设置填充几个字节就去查一次,默认为4个字节      
              renderTo : 'sp_company',
              listeners:{'select':function(combo,record,index){
            	   $("#hid_companyId").val(record.data.id);
             }
    	  }
    	  });
	      $("#comb_company").attr('datatype',"*");
	      //编辑时设置下拉框的默认值
	      if($("#hid_companyId").val()!=''){
	    	  var name=$("#hid_companyName").val();
	    	  $("#comb_company").val(name);//下拉框设置值
	      }
	      
	    //驾驶员下拉框初始化
	      new Ext.form.ComboBox({ //默认过滤参数名为query     
              store: carForm.createMemberStore(1),    
              hiddenName:'name',
              id:'comb_driver',
              width : 200,
              mode : 'local', //设置为local,则加载的本地数据     
              typeAheadDelay:250,//默认延时查询250     
              triggerAction : 'all', //每次下拉均显示全部选项       
              selectOnFocus:true,
              forceSelection: true,// 用户必须点击选择不能随意输入  
              typeAhead: true,// 自动提示并补充列出相似的选项  
              valueField : 'name', //下拉框显示信息对应的值     
              displayField : 'name', //下拉框显示信息     
              loadingText : '正在加载信息',      
              selectOnFocus : true, //用户不能自己输入,只能选择列表中有的记录     
              minChars:2,  //设置填充几个字节就去查一次,默认为4个字节      
              renderTo : 'sp_driver',
              listeners:{'select':function(combo,record,index){
            	   $("#hid_driverId").val(record.data.id);
            	   $("#hid_driver").val(record.data.name);
            	   $("#driver_driverLiceseNum").val(record.data.driverLiceseNum==null?'':record.data.driverLiceseNum)
            	   $("#driver_contractPhone").val(record.data.contractPhone==null?'':record.data.contractPhone);
            	   if($.trim(record.data.driverLiceseNumValidityTime)!=''){
            		   $("#driver_driverLiceNum_validity").val(new Date(record.data.driverLiceseNumValidity.substr(0,10)));
            	   }
            	   if($.trim(record.data.photo)!=''){
            		   $("#driver_photo").attr('src',cfg.cxt+'/upload/'+record.data.photo);
            	   }
             }
    	  }
    	  });
	     $("#comb_driver").attr('datatype',"*");
	      //编辑时设置下拉框的默认值
	      if($("#hid_driver").val()!=''){
	    	  $("#comb_driver").val($("#hid_driver").val());//下拉框设置值
	      }
    	 
	      //押运员下拉框初始化
	      new Ext.form.ComboBox({ //默认过滤参数名为query     
              store: carForm.createMemberStore(2),    
              hiddenName:'name',
              id:'comb_escort',
              width : 200,
              mode : 'local', //设置为local,则加载的本地数据     
              typeAheadDelay:250,//默认延时查询250     
              triggerAction : 'all', //每次下拉均显示全部选项       
              selectOnFocus:true,
              forceSelection: true,// 用户必须点击选择不能随意输入  
              typeAhead: true,// 自动提示并补充列出相似的选项  
              valueField : 'name', //下拉框显示信息对应的值     
              displayField : 'name', //下拉框显示信息     
              loadingText : '正在加载信息',      
              selectOnFocus : true, //用户不能自己输入,只能选择列表中有的记录     
              minChars:2,  //设置填充几个字节就去查一次,默认为4个字节      
              renderTo : 'sp_escort',
              listeners:{'select':function(combo,record,index){
            	  $("#hid_escrotId").val(record.data.id);
            	   $("#hid_escort").val(record.data.name);
            	   $("#escort_superCargoNum").val(record.data.superCargoNum==null?'':record.data.superCargoNum);
            	   $("#escort_contractPhone").val(record.data.contractPhone==null?'':record.data.contractPhone);
            	   if($.trim(record.data.superCargoNumValidity)!=''){
            		   $("#escort_superCargoNum_validity").val(new Date(record.data.superCargoNumValidity.substr(0,10)));
            	   }
            	   if($.trim(record.data.photo)!=''){
            		   $("#escort_photo").attr('src',cfg.cxt+'/upload/'+record.data.photo);
            	   }

             }
    	  }
    	  });
	     $("#comb_escort").attr('datatype',"*");
	      //编辑时设置下拉框的默认值
	      if($("#hid_escort_name").val()!=''){
	    	  $("#comb_escort").val($("#hid_escort").val());//下拉框设置值
	      }
      }
   }
}();
Ext.onReady(carForm.init, carForm);
 